Flash memory (also known as EEPROMs) are often used in systems where a microprocessor is embedded on a control board. The flash memory provides programming to the microprocessor. The advantage of using flash memory is that they are capable of having old programming removed and new programming installed. Therefore, updated software can be loaded onto the flash memory to be used by the microprocessor.
In a typical operation, on power up, a control board, including a microprocessor, executes its on-board programming which includes a setup protocol for establishing communication with components external to the control board. Once communication is established, the microprocessor can receive a new programming load. This programming is written onto the flash memory. When a board with an embedded processor is originally built, the flash memory must be programmed with a boot code so that the board can establish communication with the outside world. This is typically done by taking unprogrammed flash memories and placing them on a programmer. They are then programmed and replaced on the board. The board is then booted and the programming can be loaded from the flash memory to the microprocessor. If a new boot code is required, the flash devices are removed, reprogrammed and then reinstalled. To allow for removal, flash memories are typically installed in sockets instead of being soldered onto the board. The handling of flash memory can damage its metal leads or produce dangerous static electricity which can damage the memories. Also, using a programmer to program flash memory is a slow process.